Conventional recommendation systems provide a powerful discovery experience by suggesting items to users that the users have consumed in the past. Recommendation systems provide information about matches between users (e.g., shoppers) and items (e.g., books, videos, games) based on user interests, preferences, history, or other factors. For example, if a system has data that a user has previously accessed (e.g., purchased, rented, borrowed, played) a set of items, then a recommendation system may identify similar items and recommend them to the user based on the data about the user's own actions (e.g., “if you liked this, you might like that”). While a conventional system may produce interesting recommendations, those recommendations may be provided in a passive experience where the system infers what a user is interested in based on the user's past experience and then presents a recommendation.
There are two major types of conventional recommendation systems: collaborative filtering based systems, and feature based systems. Both types of systems have their advantages and disadvantages. For example, in a matrix factorization over collaborative filtering approach, the recommendation may be based on a user's history. However, the user's history may be unrelated to their current interest. For example, a grandfather may spend the bulk of his shopping time looking for fly fishing material, for historical fiction set in the American Midwest, and for travel movies. A recommendation system may zero in on the grandfather's likes and dislikes based on that shopping history. However, when the grandfather is shopping for a birthday gift for his youngest granddaughter, the fly-fishing, historical fiction, and travel movie history may be irrelevant to his current intent. A user's current intent or short term interest may be completely unrelated to the inferred intent based on their history. In a feature based system, the discovery experience allows users to explore items that share common features (e.g., genre, director, plot). Some feature based systems allow users to “drill into” a feature to find other items that have the same feature (e.g., same director in same genre). However, feature based systems tend to be shallow and may produce recommendations that are unsophisticated. The recommendations may miss out on interesting connections and may produce recommendations based on connections that are so trivial as to be unreal. Additionally, feature based systems may completely ignore actual behavior, either long-term tendencies or short-term interests. While feature based systems may provide some good recommendations, the data upon which the recommendations are made may need to be manually created, which may be time-consuming and expensive.
Collaborative filtering depends on actual user events (e.g., user who bought/watched/read an item). Matrix factorization over collaborative filters is regarded as providing superior results for a recommendation system. Matrix factorization over collaborative filters may embed an item model and a user model in a single latent space and then determine similarity based on actual usage. For example, conventional matrix factorization models map users and items to a joint latent factor space and model user-item interactions as inner products in the joint latent factor space. An item may be associated with an item vector whose elements measure the extent to which the item possesses some factors. Similarly, a user may be associated with a user vector whose elements measure the extent of interest the user has in items that are high in corresponding factors. The dot product of the vectors may describe the interaction between the user and item and may be used to determine whether to make a recommendation to a user. More specifically, every user i may be assigned a vector ui in a latent space, and every item j may also be assigned a vector vj in the latent space, i and j being integers. The dot product ui·vj represents the score between the user i and the item j. The score represents the strength of the relationship between the user i and the item j and may be used to make a recommendation (e.g., recommend item with highest score). The recommendation may simply appear in a passive system and the viewer can select or not select the item. The grandfather searching for a present for his youngest granddaughter may only know one keyword “e.g., ponies” that is relevant to the granddaughter and may not have any information about the brand names or characters associated with the virtual pony game the granddaughter plays. The grandfather may want to “look around” at items in the virtual pony space, rather than simply rely on a single recommendation that shows a pony in a fly-fishing environment in a historical setting in the Midwest.
In a conventional matrix factorization over collaborative filter system, after all the items have been scored, the highest scoring items may be selected and recommended. This may be represented as: given i, find j=arg max ui·vj. In mathematics, arg max is the argument of the maximum, which is defined as the set of points of the given argument for which the given function attains its maximum value.
      arg    ⁢                  ⁢                  max        x            ⁢              f        ⁡                  (          x          )                      :=      {          x      ❘              ∀                              y            ⁢                          :                        ⁢                          f              ⁡                              (                y                )                                              ≤                      f            ⁡                          (              x              )                                            }  
In other words, arg maxx f (x) is the set of values of x for which f(x) attains its largest value M. For example, if f(x) is 1−|x| then it attains its maximum value of 1 at x=0 and only there, so arg maxx (1−|x|)={0}. Once again, the recommendation may simply be provided in a passive display. The grandfather may be unsure whether the recommended item is appropriate for his granddaughter, and may be unaware of other products that may be relevant. The passive system may provide no opportunity for the grandfather to seek assistance from either product specialists or other similarly situated shoppers who may have more knowledge about virtual ponies for five year old girls.